<?php
### 工具文件
// 明确的时候：谁想要用这里面的方法
// 就  include '路径/function.php' 导入一下
// 就相当于将整个文件中的代码 复制过去


/**
 * 统一响应请求方法
 * @param int    $state 200/201 301/302 400/401/403/404/405 500
 * @param string $msg
 * @param mixed  $data
 */
function response($state, $msg, $data = null)
{
    echo json_encode([
        "meta" => [
            "state" => $state,
            "msg" => $msg
        ],
        "data" => $data
    ]);
    die; // 终止代码执行
}



/**
 * 递归实现无限极分类
 * @param $array 分类数据
 * @param $pid 父ID
 * @param $level 分类级别
 * @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进
 */
function getTree($array, $pid =0, $level = 0)
{
    //声明静态数组,避免递归调用时,多次声明导致数组覆盖
    $tmp = [];
    //遍历数据
    foreach ($array as $key => $value)
    {
        //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点
        if ($value['parent_id'] == $pid){
            //父节点为根节点的节点,级别为0，也就是第一级
            $value['level'] = $level;
            //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
            $value['children'] = getTree($array, $value['cat_id'], $level+1);
            //把数组放到tmp中
            $tmp[] = $value;
            //把这个节点从数组中移除,减少后续递归消耗
            unset($array[$key]);
        }
    }
    return $tmp;
}

